The present invention relates to multi-player virtual computing environments. In particular, the present invention relates to interest management for multi-player virtual environments.
In multi-player virtual environment computing systems, a central controller, typically a server, defines a virtual environment or world in which virtual characters can move and interact with each other. Some of the virtual characters in the environment are controlled by players who are connected to the central controller as clients. Other virtual characters are controlled by the central controller.
Typically, the virtual environment is incrementally updated by the central controller using an update cycle. During each cycle, the central controller collects messages from each player that indicate actions that the player wants their virtual characters to perform in the environment. The central controller then determines actions for the virtual characters it controls. After the actions of all of the virtual characters have been executed, update messages are sent to each player to indicate how the virtual environment and virtual characters have changed.
For massive virtual environments that contain thousands of virtual characters, it becomes impossible to send messages for all of the changes in the environment to each player. To limit the amount of information that is sent to any one player, many systems use techniques known as interest management in order to filter the information that is provided to a player. One common criterion for filtering is the distance between a player's character and an object or character that has changed in the virtual environment. In particular, changes that occur beyond a specified radius from the player's character are filtered out so that they are not provided to the player.
One technique for performing such distance-based interest management involves dividing the virtual environment into cells. For each player's character, the controller identifies a set of cells that are within a given radius of the player's character. Any changes to the environment that occur in those cells are transmitted to the player while changes in other cells are filtered from the player. Note that in this type of system, if a cell is selected, the player receives information for every character of that cell regardless of the actual distance between the character and the player's character. Thus, if the cell is large, the player can receive information on characters that are of little interest to the player.
In other interest management techniques, the controller determines which objects and characters are within a given distance of the player's character and then only sends messages for the objects and characters that are within that distance. Changes that occur outside of that distance of interest, are not communicated to the client.
In both of the interest management techniques of the prior art, the filtering of the player messages is done on a player-by-player basis. Thus, even if two players' characters are near each other in the environment, a separate filtering operation has to be performed for each player. This creates a large burden on the controller.